<?php

/**
 * Контроллер действия на фронтенде. Определяет фильтр, реализующий
 * действие и передает ему управление.
 *
 */
abstract class Kernel_Controller_Abstract extends Kernel_Filter 
{

    /**
     * Запускает фильтр.
     *
     */
    public function process() 
    {
        parent::process();
        // определяем компонент-обработчик действия
        $filter = $this->_getFilter();
        // передаем ему управление
        $this->_forward($filter);
    }

    /**
     * Возвращает компонент-обработчик действия.
     *
     * @return  Kernel_Filter
     */
    abstract protected function _getFilter();
    
}
